package com.zzj.hotel.basedao;

import java.util.List;
import java.util.Map;

import org.springframework.orm.hibernate3.HibernateTemplate;


public interface BaseDao<T> {

	/**
	 * 注入mongodbTemplate
	 * 
	 * @param mongoTemplate
	 */
	public void setHibernateTemplate(HibernateTemplate hibernateTemplate);

	/**
	 * 通过一定的条件查询一个实体
	 * 
	 * @param query
	 * @return
	 */
	public T selectOne(Map<String, Object> queryMap);

	/**
	 * 通过ID获取记录
	 * 
	 * @param id
	 * @return
	 */
	public T selectById(String id);

	/**
	 * 通过条件查询实体(集合)
	 * 
	 * @param query
	 */
	public List<T> selectList(Map<String, Object> queryMap);
	
	

	/**
	 * 保存一个对象到mongodb
	 * 
	 * @param bean
	 * @return
	 */
	public void save(T bean);

	/**
	 * 插入对象
	 * 
	 * @param bean
	 */
	public void insert(T bean);

	/**
	 * 插入对象集合
	 * 
	 * @param beans
	 */
	public void insertList(List<T> beans);

	/**
	 * 通过id删除对象
	 * 
	 * @param id
	 */
	public void deleteById(String id);
	
	public void update(Object bean);

}
